package org.ipower.examsystem.action;

import java.util.ArrayList;
import java.util.List;
import org.ipower.examsystem.domain.DataField;
import org.ipower.examsystem.domain.TeachingSections;
import org.ipower.examsystem.service.TeachingSectionsService;
import org.ipower.platform.domain.Pager;
import org.ipower.platform.domain.QueryCondition;

/**
 * 教材章节列表。
 * @author jeasonyoung
 */
public class TeachingSectionsAction extends ModuleBaseAction<TeachingSectionsService> {
    private static final long serialVersionUID = 1L;
    private Pager<TeachingSections> dataSource = new Pager<TeachingSections>();
    private List<DataField> list = new ArrayList<DataField>();
    private List<TeachingSections> bindDataSource;
    private String sectionName, sectionID,catalogID;
    /**
     * 设置章节名称。
     * @param sectionName 章节名称。
     * */
    public void setSectionName(String sectionName) {
        this.sectionName = sectionName;
    }
    /**
     * 设置所属科目ID。
     * @param catalogID 所属科目ID。
     * */
    public void setCatalogID(String catalogID) {
        this.catalogID = catalogID;
    }
    /**
     * 设置章节ID。
     * @param 章节ID。
     * */
    public void setSectionID(String sectionID) {
        this.sectionID = sectionID;
    }
    /**
     * 获取列表数据源。
     * @return 分页数据。
     * */
    public Pager<TeachingSections> getDataSource() {
        return dataSource;
    }
    /**
     * 获取所有子科目集合.
     * */
    public List<DataField> getNotSelfSections(){
        return this.list;
    }
    /**
     * 获取绑定列表数据源。
     * @return 列表数据源。
     * */
    public List<TeachingSections> getBindDataSource() {
        return bindDataSource;
    }
     /**
     * 执行列表数据。
     * @return 执行结果。
     * */
    public String list(){
        List<QueryCondition> entities = new ArrayList<QueryCondition>();
        if(this.sectionName != null && !this.sectionName.isEmpty()){
            entities.add(new QueryCondition("SectionName", this.sectionName,QueryCondition.MODE_ANY));
        }
        if(this.catalogID != null && !this.catalogID.isEmpty()){
            entities.add(new QueryCondition("CatalogID", this.catalogID,null));
        }
        this.dataSource =  this.getService().findAll(this.getAscProperty(), this.isAsc(), this.getStart(), this.getLimit(),entities);
        return SUCCESS;
    }
    /**
     * 获取不包括指定考试科目ID子目录所有子科目集合.
     * @return 执行 结构.
     * */
    public String NotSelfSections(){
        this.list = this.getService().NotSelfSections(this.sectionID);
        return SUCCESS;
    }
    /**
     * 绑定数据。
     * @return 执行结果。
     * */
    public String bindAll(){
        this.bindDataSource = this.getService().bindAllData(this.catalogID);
        return SUCCESS;
    }
    /**
    * 默认执行。
    * @return 执行结果。
    * */
    @Override
    public String execute() throws Exception{
        return SUCCESS;
    }
}